namespace DotNetNuke.Services.Wizards
{
    using System;
    using System.Web.UI;

    /// -----------------------------------------------------------------------------
    /// Project		: DotNetNuke
    /// Class		: WizardPage
    /// -----------------------------------------------------------------------------
    /// <summary>
    /// The WizardPage class defines a Wizard Page.
    /// </summary>
    /// <remarks>
    /// </remarks>
    /// <history>
    /// [cnurse]	10/10/2004	created
    /// </history>
    /// -----------------------------------------------------------------------------
    public class WizardPage
    {
        private System.Web.UI.Control _Control;
        private string _Help;
        private string _Icon;
        private WizardPageType _PageType;
        private string _Title;

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Default Constructor Builds a default WizardPageInfo object.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	10/10/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPage() : this(DotNetNuke.Services.Localization.Localization.GetString("NoPage"), "", null, WizardPageType.Content, "")
        {
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Constructor Builds a custom WizardPageInfo object.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <param name="title">The title of the Page</param>
        /// <param name="icon">The icon for the Page</param>
        /// <param name="ctl">The control associated with the Page</param>
        /// <history>
        /// [cnurse]	10/10/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPage(string title, string icon, System.Web.UI.Control ctl) : this(title, icon, ctl, WizardPageType.Content, "")
        {
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Constructor Builds a custom WizardPageInfo object.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <param name="title">The title of the Page</param>
        /// <param name="icon">The icon for the Page</param>
        /// <param name="ctl">The control associated with the Page</param>
        /// <param name="type">The type of the Page</param>
        /// <history>
        /// [cnurse]	10/10/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPage(string title, string icon, System.Web.UI.Control ctl, WizardPageType type) : this(title, icon, ctl, type, "")
        {
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Constructor Builds a custom WizardPageInfo object.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <param name="title">The title of the Page</param>
        /// <param name="icon">The icon for the Page</param>
        /// <param name="ctl">The control associated with the Page</param>
        /// <param name="help">The Help text for the  Page</param>
        /// <history>
        /// [cnurse]	11/3/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPage(string title, string icon, System.Web.UI.Control ctl, string help) : this(title, icon, ctl, WizardPageType.Content, help)
        {
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Constructor Builds a custom WizardPageInfo object.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <param name="title">The title of the Page</param>
        /// <param name="icon">The icon for the Page</param>
        /// <param name="ctl">The control associated with the Page</param>
        /// <param name="type">The type of the Page</param>
        /// <param name="help">The Help text for the  Page</param>
        /// <history>
        /// [cnurse]	11/3/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPage(string title, string icon, System.Web.UI.Control ctl, WizardPageType type, string help)
        {
            this._Control = ctl;
            this._Help = help;
            this._Icon = icon;
            this._PageType = type;
            this._Title = title;
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Gets And Sets the Panel associated with the Wizard Page.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	10/12/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public System.Web.UI.Control Control
        {
            get
            {
                return this._Control;
            }
            set
            {
                this._Control = value;
            }
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Gets And Sets the Help associated with the Wizard Page.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	11/3/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public string Help
        {
            get
            {
                return this._Help;
            }
            set
            {
                this._Help = value;
            }
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Gets And Sets the Icon associated with the Wizard Page.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	10/12/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public string Icon
        {
            get
            {
                return this._Icon;
            }
            set
            {
                this._Icon = value;
            }
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Gets And Sets the Type of the Wizard Page.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	10/13/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public WizardPageType PageType
        {
            get
            {
                return this._PageType;
            }
            set
            {
                this._PageType = value;
            }
        }

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Gets And Sets the Title of the Wizard Page.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	10/12/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public string Title
        {
            get
            {
                return this._Title;
            }
            set
            {
                this._Title = value;
            }
        }
    }
}

